package com.project.service;

import com.project.bean.CutProductBean;
import com.project.bean.ProductBean;

import java.time.LocalDate;

/***
 * 商品业务层接口
 */
public interface IProductService {
    /***
     * 商品添加
     * @param productBean 添加的商品
     */
   public void add(ProductBean productBean);

    /**
     * 按id删除商品
     * @param id 商品id
     */
   public void del(int id);

    /***
     * 按id修改价格
     * @param id 商品价格
     * @param price 价格
     */
   public void update(int id,int price);

    /***
     * 按id查询商品
     * @param id 商品id
     * @return 商品对象
     */
   public  ProductBean findById(int id);
    /**
     * 统计产品数量
     * @return 产品数量
     */
    public int countProduct();
    /**
     * 分页查询所有记录
     * @param pageNO 页码
     * @return 分页对象
     */
    public CutProductBean<ProductBean> cutAll(int pageNO);

    /**
     * 按厂家、生产日期时间段，动态条件分页查询商品
     * @param pageNO 页码
     * @param address 厂家
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 分页对象
     */
    public  CutProductBean<ProductBean>  cutByAddress(int pageNO,
                                                   String address, LocalDate startDate, LocalDate endDate);

    /**
     * 按商品名、价格范围 动态条件分页查询商品
     * @param pageNO 页码
     * @param name 商品名
     * @param startPrice 起始价格
     * @param endPrice 最终价格
     * @return 分页对象
     */
    public  CutProductBean<ProductBean>  cutByName(int pageNO,
                                                   String name, int startPrice,int endPrice);

}
